1. Field of the Invention
The invention relates generally to storage systems having multiple disk drives and more specifically relates to methods and structures for better utilizing available disk capacity when disk size coercion and disk resident configuration techniques and structures are utilized.
2. Discussion of Related Art
As computing application performance demands have increased, so too have performance and capacity demands on storage systems utilized in conjunction with computing systems. Storage systems such as disk storage system now provide storage capacities of hundreds of gigabytes or terabytes. To improve both performance and reliability, it is common that storage systems provide a plurality of storage devices and storage controllers all operable in parallel and often providing redundancy. Parallel operation of multiple devices within a storage system may improve performance by distributing I/O operations over a plurality of such storage devices operating substantially in parallel. Reliability is improved by providing redundancy of the devices as well as redundant information such that the failure of a particular storage device does not cause failure of the entire system nor loss of data. Rather, continued operation of the storage system may be provided though possibly in a degraded state and any lost data may be recovered from redundant information stored on other storage devices still operating. Such techniques are often referred to as redundant arrays of inexpensive disks or RAID.
Numerous types of RAID storage management are generally known in the art providing varying degrees of redundancy to improve reliability with and without so-called striping to distribute data over a plurality of parallel operating devices.
In the context of such storage systems utilizing a plurality of storage devices operating substantially in parallel and providing redundant storage management techniques, it is common that a storage controller receives host system I/O requests addressing logical blocks of information in the storage system and maps those requests into corresponding physical locations distributed over the multiple devices of the storage system. Such a storage controller is often referred to as a RAID storage controller if it provides redundancy management techniques. In particular when applying redundant storage management techniques in a RAID storage controller, it is common for the storage controller to treat all storage devices used for storing a particular volume or logical unit of data as though they provide some standardized physical capacity. In general, having a standardized, discrete physical capacity on the multiple storage devices used for storing a particular volume or logical unit of data simplifies certain storage and redundancy management techniques. Since such RAID storage systems tend to permit rapid replacement of failed storage devices (i.e., so-called hot swapping), it may be the case that over time replacement devices may vary in their physical capacity relative to earlier, factory installed devices. For example, 80 GB device from one manufacture may have slightly less than 80 GB of available physical storage capacity while an 80 GB drive from a second manufacture may have slightly more than 80 GB physical storage capacity. A storage controller utilizing to such devices may adjust the available capacity of the larger device by logically restricting access to the additional storage capacity. Such a technique is generally known in the art as coercion. The storage controller or RAID storage controller is said to “coerce” the available physical capacity of larger devices to reduce them to the available physical capacity of smaller devices utilized in the same logical unit or volume of data storage. Such coercion generally consists of logical mapping or table structures to adjust the usable space on each device of a storage volume.
Another common technique applied in present-day storage systems is to record configuration information regarding the entire storage system in reserved areas of the devices within the storage system. Storing such configuration information on the storage devices of a storage system may permit more rapid recovery of configuration and mapping information relevant to the storage controller upon initialization of the associated storage system. Such configuration on disk (“COD”) techniques may give rise to a need to record tens if not hundreds of megabytes of configuration and mapping information on each device of the storage system. Since such configuration information is useful only for the internal purposes of the storage controller, it is common in the art to further adjust the available physical capacity of each storage device to reduce it by the amount of storage required to store the COD information. Thus, host systems are simply unaware of the area of the disk dedicated by the storage controller to the recording and maintenance of COD information.
A particular problem can arise when size coercion and COD techniques and structures are both applied within the same storage system. Size coercion techniques tend to coerce the size of larger storage devices down to certain discrete size values, for example rounding down to the nearest 10 GB of available storage capacity. Thus, each storage device in the storage system may be coerced to the next lower integral multiple of 10 GB of available storage capacity. Those of ordinary skill in the art will recognize that such coercion techniques may round the storage capacity to any desired value as a matter of design choice. Given that such rounding of the available disk storage capacity is common, problems arise if the COD allocated space is allocated in advance of and independent of the size coercion rounding function.
For example, if a size coercion function is selected to round the capacity down to the next lower integral multiple of 10 GB and if, for example, the COD information is approximately 64 MB of reserved space, the timing and location for the allocated COD information may dramatically affect the coercion features to reduce the available disk drive capacity (i.e., the coercion rounding to a lower available disk capacity). If, for example, an 80 GB storage device is slightly larger than another 80 GB, say for example 20 MB larger, then allocating 64 MB for reserved COD information followed by size coercion rounding to the next lower 10 GB increment would reduce the space of the exemplary storage device to approximately 70 GB wasting a significant portion of 10 GB of available physical space.
It is evident from the above discussion that a need exists for reducing such wasteful practices when combining reserved allocation of COD information with size coercion techniques in a storage system.